﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Transactions;
using negocios;
using objetos;
using publico;


namespace softsales.pagina.cadastro
{
    public partial class cadastro_incluir : System.Web.UI.Page
    {
        // cadastro
        BLL_TB_CADASTRO b_tb_cadastro = new BLL_TB_CADASTRO();
        OBJ_TB_CADASTRO o_tb_cadastro = new OBJ_TB_CADASTRO();

        // cadastro enderco
        BLL_TB_ENDERECO_CADASTRO b_tb_endereco_cadastro = new BLL_TB_ENDERECO_CADASTRO();
        OBJ_TB_ENDERECO_CADASTRO o_tb_endereco_cadastro = new OBJ_TB_ENDERECO_CADASTRO();

        // cadastro bancaria 
        OBJ_TB_CADASTRO_BANCARIA o_tb_cadastro_bancaria = new OBJ_TB_CADASTRO_BANCARIA();
        BLL_TB_CADASTRO_BANCARIA b_tb_cadastro_bancaria = new BLL_TB_CADASTRO_BANCARIA();


        // cadastro fisica
        BLL_TB_CADASTRO_FISICA b_tb_cadastro_fisica = new BLL_TB_CADASTRO_FISICA();
        OBJ_TB_CADASTRO_FISICA o_tb_cadastro_fisica = new OBJ_TB_CADASTRO_FISICA();

        // cadastro juridica
        BLL_TB_CADASTRO_JURIDICA b_tb_cadastro_juridica = new BLL_TB_CADASTRO_JURIDICA();
        OBJ_TB_CADASTRO_JURIDICA o_tb_cadastro_juridica = new OBJ_TB_CADASTRO_JURIDICA();

        // cadastro email
        BLL_TB_CADASTRO_EMAIL b_tb_cadastro_email = new BLL_TB_CADASTRO_EMAIL();
        OBJ_TB_CADASTRO_EMAIL o_tb_cadastro_email = new OBJ_TB_CADASTRO_EMAIL();


        // cadastro_tipo

        OBJ_TB_CADASTRO_TIPO o_tb_cadastro_tipo = new OBJ_TB_CADASTRO_TIPO();
        BLL_TB_CADASTRO_TIPO b_tb_cadastro_tipo = new BLL_TB_CADASTRO_TIPO();

        // contato
        BLL_TB_CONTATO b_tb_contato = new BLL_TB_CONTATO();
        OBJ_TB_CONTATO o_tb_contato = new OBJ_TB_CONTATO();

        // dropdownlist
        BLL_TB_CARGO b_tb_cargo = new BLL_TB_CARGO();
        BLL_TB_DEPARTAMENTO b_tb_departamento = new BLL_TB_DEPARTAMENTO();
        BLL_TB_RAMO_ATIVIDADE b_tb_ramo_atividade = new BLL_TB_RAMO_ATIVIDADE();
        BLL_TB_TIPO_LOGRADOURO b_tb_tipo_logradouro = new BLL_TB_TIPO_LOGRADOURO();
        BLL_TB_TIPO_ENDERECO b_tb_tipo_endereco = new BLL_TB_TIPO_ENDERECO();
        BLL_TB_TIPO_SITUACAO_CADASTRO b_tb_tipo_situacao_cadastro = new BLL_TB_TIPO_SITUACAO_CADASTRO();      
        BLL_TB_TIPO_CONTATO b_tb_tipo_contato = new BLL_TB_TIPO_CONTATO();

        BLL_TB_PAISES b_tb_paises = new BLL_TB_PAISES();
        BLL_TB_CIDADE b_tb_cidade = new BLL_TB_CIDADE();
        BLL_TB_UF b_tb_uf = new BLL_TB_UF();        
        BLL_TB_ESTADO_CIVIL b_tb_estado_civil = new BLL_TB_ESTADO_CIVIL();
        BLL_TB_TIPO_CADASTRO_EMAIL b_tb_tipo_cadastro_email = new BLL_TB_TIPO_CADASTRO_EMAIL();

        OBJ_TB_CADASTRO_HISTORICO o_tb_cadastro_historico = new OBJ_TB_CADASTRO_HISTORICO();
        BLL_TB_CADASTRO_HISTORICO b_tb_cadastro_historico = new BLL_TB_CADASTRO_HISTORICO();


        OBJ_TB_TIPO_CADASTRO_FISCAL o_tb_tipo_cadastro_fiscal = new OBJ_TB_TIPO_CADASTRO_FISCAL();
        BLL_TB_TIPO_CADASTRO_FISCAL b_tb_tipo_cadastro_fiscal = new BLL_TB_TIPO_CADASTRO_FISCAL();

        // chklist
        BLL_TB_TIPO_CADASTRO b_tb_tipo_cadastro = new BLL_TB_TIPO_CADASTRO();
        BLL_TB_LOG_ERRO b_tb_log_erro = new BLL_TB_LOG_ERRO();
  
        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {
                if (!IsPostBack)
                {


                    if (b_tb_cadastro_email.Dt_cadastro_email != null)
                    {
                        b_tb_cadastro_email.Dt_cadastro_email.Clear();
                    }

                    if (b_tb_endereco_cadastro.Dt_endereco_cadastro != null)
                    {
                        b_tb_endereco_cadastro.Dt_endereco_cadastro.Clear();
                    }

                    try
                    {

                        b_tb_cargo.PreencheControle(DDL_ID_CARGO, true);
                        b_tb_cargo.PreencheControle(DDL_ID_CARGO_CONTATO, true);
                        b_tb_tipo_contato.PreencheControle(DDL_ID_TIPO_CONTATO, true);
                        b_tb_departamento.PreencheControle(DDL_ID_DEPARTAMENTO, true);
                        b_tb_paises.PreencheControle(DDL_ID_PAIS, true);                        
                        b_tb_tipo_endereco.PreencheControle(DDL_ID_ENDERECO_TIPO, true);
                        b_tb_tipo_logradouro.PreencheControle(DDL_ID_LOGRADOURO, true);
                        b_tb_uf.PreencheControle(DDL_ID_UF, true);
                        b_tb_estado_civil.PreencheControle(DDL_ID_ESTADO_CIVIL, true);
                        b_tb_tipo_situacao_cadastro.PreencheControle(DDL_ID_SITUACAO, true);
                        b_tb_tipo_cadastro_email.PreencheControle(DDL_TIPO_CADASTRO_EMAIL, true);
                        b_tb_tipo_cadastro_fiscal.PreencheControle(DDL_ID_TIPO_CADASTRO_FISCAL, true);

                        CHK_SIT_PRINCIPAL.Checked = true;
                        CHK_SIT_ATIVO.Checked = true;
                        b_tb_tipo_cadastro.PreencheControle(CHK_TIPO_CADASTRO, false);

                        TXT_DT_CADASTRO.Text = DateTime.Now.ToShortDateString();
                        TXT_DT_CADASTRO.Enabled = false;

                        DDL_PESSOA.Items.Add(new ListItem("Selecione", ""));
                        DDL_PESSOA.Items.Add(new ListItem("Jurídica", "J"));
                        DDL_PESSOA.Items.Add(new ListItem("Física", "F"));


                        DDL_SEXO.Items.Add(new ListItem("Masculino", "M"));
                        DDL_SEXO.Items.Add(new ListItem("Feminino", "F"));

                        DDL_PESSOA.SelectedValue = "J";
                        PNL_PESSOA_JURIDICA.Visible = true;
                        PNL_PESSOA_FISICA.Visible = false;
                        DDL_ID_PAIS.SelectedIndex = 1;

                        TAB_CONTAINER.ActiveTab = TAB_CADASTRO;

                        if (Request["pg"] != null)
                        {
                            LBL_TITULO_PAGINA.Text = string.Format("Incluir Cadastro {0}", Request["pg"].ToString());

                        }

                    }
                    catch (Exception ex)
                    {
                        b_tb_log_erro.IncluirLogErro(ex);
                        Master.MSG_ALERTA("Erro ao tentar carregar a página");

                    }


                }               



            }

        }


        protected void BTN_SALVAR_Click(object sender, EventArgs e)
        {
            try
            {
                bool erro = false;

                int id_cadastro = 0;

                if (TXT_NOME.Text == string.Empty)
                {
                    erro = true;
                }
                if (DDL_PESSOA.SelectedValue == "J")
                {
                    if (TXT_CNPJ.Text == string.Empty)
                    {
                        erro = true;
                    }
                }
                else
                {
                    if (TXT_CPF.Text == string.Empty)
                    {
                        erro = true;
                    }
                }

                if (DDL_ID_TIPO_CADASTRO_FISCAL.SelectedValue == string.Empty)
                {
                    erro = true;
                }

                if (b_tb_endereco_cadastro.Dt_endereco_cadastro.Rows.Count == 0)
                {
                    erro = true;
                }

                if (!erro)
                {

                    try
                    {

                        using (TransactionScope scope = new TransactionScope())
                        {


                            // CADASTRO
                            o_tb_cadastro.dt_cadastro = DateTime.Now;
                            o_tb_cadastro.id_situacao = Convert.ToInt32(DDL_ID_SITUACAO.SelectedValue);
                            o_tb_cadastro.id_tipo_cadastro_fiscal = Convert.ToInt32(DDL_ID_TIPO_CADASTRO_FISCAL.SelectedValue);
                            o_tb_cadastro.id_usuario_criador = PUB_SESSAO.Id;
                            o_tb_cadastro.nome = TXT_NOME.Text;
                            o_tb_cadastro.observacao = TXT_OBSERVACAO.Text;
                            o_tb_cadastro.pessoa = DDL_PESSOA.SelectedValue;
                            o_tb_cadastro.sit_ativo = CHK_SIT_ATIVO.Checked;


                            // PESSOA JURIDICA 
                            if (DDL_PESSOA.SelectedValue == "J")
                            {
                                o_tb_cadastro.cnpj_cpf = TXT_CNPJ.Text;
                                o_tb_cadastro_juridica.cnpj = TXT_CNPJ.Text;
                                o_tb_cadastro_juridica.fantasia = TXT_FANTASIA.Text;                                
                                o_tb_cadastro_juridica.insc_est = TXT_INSCRICAO_ESTADUAL.Text;
                                o_tb_cadastro_juridica.insc_est_st = TXT_INSCRICAO_ESTADUAL_ST.Text;
                                o_tb_cadastro_juridica.insc_mun = TXT_INSCRICAO_MUNICIPAL.Text;


                                // INCLUI O CADASTRO e CADASTRO JURIDICA
                                id_cadastro = b_tb_cadastro.Incluir(o_tb_cadastro);
                                o_tb_cadastro_juridica.id_cadastro = id_cadastro;
                                b_tb_cadastro_juridica.Incluir(o_tb_cadastro_juridica);

                            }
                            else
                            {

                                o_tb_cadastro.cnpj_cpf = TXT_CPF.Text;
                                o_tb_cadastro_fisica.cpf = TXT_CPF.Text;
                                o_tb_cadastro_fisica.dt_admissao = PUB_FUNCOES.TrataData(TXT_DT_ADMISSAO.Text);
                                o_tb_cadastro_fisica.dt_demissao = PUB_FUNCOES.TrataData(TXT_DT_DEMISSAO.Text);
                                o_tb_cadastro_fisica.dt_emissao = PUB_FUNCOES.TrataData(TXT_DT_EMISSAO.Text);
                                o_tb_cadastro_fisica.dt_nascimento = PUB_FUNCOES.TrataData(TXT_DT_NASCIMENTO.Text);
                                o_tb_cadastro_fisica.id_cargo = Convert.ToInt32(DDL_ID_CARGO.SelectedValue);
                                o_tb_cadastro_fisica.id_departamento = Convert.ToInt32(DDL_ID_DEPARTAMENTO.SelectedValue);
                                o_tb_cadastro_fisica.id_estado_civil = Convert.ToInt32(DDL_ID_ESTADO_CIVIL.SelectedValue);
                                o_tb_cadastro_fisica.mae = TXT_MAE.Text;
                                o_tb_cadastro_fisica.nacionalidade = TXT_NACIONALIDADE.Text;
                                o_tb_cadastro_fisica.naturalidade = TXT_NATURALIDADE.Text;
                                o_tb_cadastro_fisica.orgao_emissor = TXT_ORGAO_EMISSOR.Text;
                                o_tb_cadastro_fisica.pai = TXT_PAI.Text;
                                o_tb_cadastro_fisica.registro_geral = TXT_REGISTRO_GERAL.Text;
                                o_tb_cadastro_fisica.sexo = DDL_SEXO.SelectedValue;
                                o_tb_cadastro_fisica.titulo_eleitor = TXT_TITULO_ELEITOR.Text;

                                // INCLUIR O CADASTRO E CADASTRO FISICA
                                id_cadastro = b_tb_cadastro.Incluir(o_tb_cadastro);
                                o_tb_cadastro_fisica.id_cadastro = id_cadastro;
                                b_tb_cadastro_fisica.Incluir(o_tb_cadastro_fisica);

                            }


                            // ENDERECO

                            if (b_tb_endereco_cadastro.Dt_endereco_cadastro.Rows.Count > 0)
                            {
                                foreach (DataRow dr in b_tb_endereco_cadastro.Dt_endereco_cadastro.Rows)
                                {

                                    // ENDERECO
                                    o_tb_endereco_cadastro = new OBJ_TB_ENDERECO_CADASTRO();
                                    o_tb_endereco_cadastro.id_cadastro = id_cadastro;
                                    o_tb_endereco_cadastro.bairro = dr["bairro"].ToString();
                                    o_tb_endereco_cadastro.celular = dr["celular"].ToString();
                                    o_tb_endereco_cadastro.cep = dr["cep"].ToString();
                                    o_tb_endereco_cadastro.complemento = dr["complemento"].ToString();
                                    o_tb_endereco_cadastro.endereco = dr["endereco"].ToString();
                                    o_tb_endereco_cadastro.fax = dr["fax"].ToString();
                                    o_tb_endereco_cadastro.id_cidade = Convert.ToInt32(dr["id_cidade"].ToString());
                                    o_tb_endereco_cadastro.id_endereco_tipo = Convert.ToInt32(dr["id_endereco_tipo"].ToString());
                                    o_tb_endereco_cadastro.id_logradouro = Convert.ToInt32(dr["id_logradouro"].ToString());
                                    o_tb_endereco_cadastro.id_pais = Convert.ToInt32(dr["id_pais"].ToString());
                                    o_tb_endereco_cadastro.id_uf = Convert.ToInt32(dr["id_uf"].ToString());
                                    o_tb_endereco_cadastro.numero = dr["numero"].ToString();
                                    o_tb_endereco_cadastro.sit_principal = Convert.ToBoolean(dr["sit_principal"].ToString());
                                    o_tb_endereco_cadastro.telefone = dr["telefone"].ToString();
                                    b_tb_endereco_cadastro.Incluir(o_tb_endereco_cadastro);


                                }

                            }


                            // CADASTRO EMAIL

                            // se for maior que 0
                            if (b_tb_cadastro_email.Dt_cadastro_email.Rows.Count > 0)
                            {
                                foreach (DataRow dr in b_tb_cadastro_email.Dt_cadastro_email.Rows)
                                {
                                    o_tb_cadastro_email = new OBJ_TB_CADASTRO_EMAIL();
                                    o_tb_cadastro_email.id_cadastro = id_cadastro;
                                    o_tb_cadastro_email.email = dr["email"].ToString();
                                    o_tb_cadastro_email.id_tipo_email = Convert.ToInt32(dr["id_tipo_email"].ToString());
                                    b_tb_cadastro_email.Incluir(o_tb_cadastro_email);

                                }

                            }
                            

                            // TIPO CADASTRO

                            foreach (ListItem item in CHK_TIPO_CADASTRO.Items)
                            {
                                if (item.Selected)
                                {
                                    o_tb_cadastro_tipo.id_cadastro = id_cadastro;                                    
                                    o_tb_cadastro_tipo.id_tipo_cadastro = Convert.ToInt32(item.Value);
                                    b_tb_cadastro_tipo.Incluir(o_tb_cadastro_tipo);
                                }

                            }

                            // CONTATO

                            // se for maior que 0
                            if (b_tb_contato.Dt_contato.Rows.Count > 0)
                            {
                                foreach (DataRow dr in b_tb_contato.Dt_contato.Rows)
                                {
                                    o_tb_contato = new OBJ_TB_CONTATO();
                                    o_tb_contato.id_cadastro = id_cadastro;
                                    o_tb_contato.id_cargo = Convert.ToInt32(dr["id_cargo"].ToString());
                                    o_tb_contato.id_tipo_contato = Convert.ToInt32(dr["id_tipo_contato"].ToString());
                                    o_tb_contato.nome_contato = dr["nome_contato"].ToString();
                                    o_tb_contato.sit_ativo = Convert.ToBoolean(dr["sit_ativo"].ToString());
                                    b_tb_contato.Incluir(o_tb_contato);

                                }

                            }


                            // HISTORICO 

                            o_tb_cadastro_historico.dt_atualizacao = DateTime.Now;
                            o_tb_cadastro_historico.id_cadastro = id_cadastro;
                            o_tb_cadastro_historico.id_usuario = PUB_SESSAO.Id;
                            o_tb_cadastro_historico.operacao = "I";
                            b_tb_cadastro_historico.Incluir(o_tb_cadastro_historico);
                            

                            string  msg = PUB_MENSAGEM.MSG_INCLUSAO;

                           

                            // Recebe o parametro pg via querystring e retorna para a pagina que chamou.
                            if (Request["pg"] != null)
                            {
                                String param = Request["pg"].ToString();
                                                                
                                Master.MSG_ALERTA(msg, string.Format("../{0}/default.aspx", param.ToLower()), false);
                            }


                            b_tb_contato.Dt_contato.Clear();
                            b_tb_cadastro_email.Dt_cadastro_email.Clear();
                            b_tb_endereco_cadastro.Dt_endereco_cadastro.Clear();
                            //GRV_CADASTRO_EMAIL.DataSource = b_tb_cadastro_email.Dt_cadastro_email;
                            //GRV_CADASTRO_EMAIL.DataBind();

                            //GRV_ENDERECO_CADASTRO.DataSource = b_tb_endereco_cadastro.Dt_endereco_cadastro;
                            //GRV_ENDERECO_CADASTRO.DataBind();

                            //GRV_TB_CONTATO.DataSource = b_tb_contato.Dt_contato;
                            //GRV_TB_CONTATO.DataBind();

                            scope.Complete();
                            scope.Dispose();




                        }  // scope



                    }
                    catch (Exception ex)
                    {
                        string msg = "Erro ao tentar salvar detalhe do erro :" + ex.Message;
                        b_tb_log_erro.IncluirLogErro(ex);
                        Master.MSG_ERRO(ex.StackTrace.ToString());

                    }



                }
                else
                {
                    Master.MSG_ALERTA("Favor preencher todos os campos requeridos");


                }
            }
            catch (Exception ex)
            {
                b_tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar salvar o formulário");
                
            }
         
        }

        protected void BTN_CANCELAR_Click(object sender, EventArgs e)
        {
            // Recebe o parametro pg via querystring e retorna para a pagina que chamou.
            if (Request["pg"] != null)
            {
                String param = Request["pg"].ToString();
                Response.Redirect(string.Format("~/pagina/{0}/default.aspx",param.ToLower()), false);
            }
            
        }

        protected void ValidaCheckBox(object sender, ServerValidateEventArgs args)
        {
            args.IsValid = true;
            if (CHK_TIPO_CADASTRO.SelectedIndex == -1)

            {

                    args.IsValid = false;

            }

        }



      


        private void LimpaCamposEmail()
        {

            TXT_EMAIL_1.Text = string.Empty;
            DDL_TIPO_CADASTRO_EMAIL.SelectedValue = string.Empty;
        }

        private void LimpaCamposEnderecoCadastro()
        {
            DDL_ID_LOGRADOURO.SelectedValue = string.Empty;
            TXT_ENDERECO.Text = string.Empty;
            TXT_NUMERO.Text = string.Empty;
            TXT_BAIRRO.Text = string.Empty;
            TXT_CEP.Text = string.Empty;
            TXT_COMPLEMENTO.Text = string.Empty;
            DDL_ID_PAIS.SelectedValue = string.Empty;
            DDL_ID_CIDADE.SelectedValue = string.Empty;
            DDL_ID_UF.SelectedValue = string.Empty;
            TXT_TELEFONE.Text = string.Empty;
            TXT_CELULAR.Text = string.Empty;
            TXT_FAX.Text = string.Empty;
            DDL_ID_ENDERECO_TIPO.SelectedValue = string.Empty;
            CHK_SIT_PRINCIPAL.Checked = false;

        }


        protected void BTN_INCLUIR_ENDERECO_Click(object sender, EventArgs e)
        {
            try
            {
                if (b_tb_endereco_cadastro.Dt_endereco_cadastro != null)
                {
                    List<string> lista = new List<string>();
                    foreach (DataRow dr in b_tb_endereco_cadastro.Dt_endereco_cadastro.Rows)
                    {
                        if (Convert.ToBoolean(dr["sit_principal"].ToString()))
                        {
                            lista.Add(dr["endereco"].ToString());
                        }
                    }

                    if (lista.Count > 0)
                    {
                        CHK_SIT_PRINCIPAL.Checked = false;
                        CHK_SIT_PRINCIPAL.Enabled = false;
                    }


                }

                if (DDL_ID_LOGRADOURO.SelectedValue != string.Empty && TXT_ENDERECO.Text != string.Empty && TXT_NUMERO.Text != string.Empty && TXT_TELEFONE.Text != string.Empty)
                {




                    o_tb_endereco_cadastro.id_logradouro = Convert.ToInt32(DDL_ID_LOGRADOURO.SelectedValue);
                    o_tb_endereco_cadastro.endereco = TXT_ENDERECO.Text;
                    o_tb_endereco_cadastro.numero = TXT_NUMERO.Text;
                    o_tb_endereco_cadastro.bairro = TXT_BAIRRO.Text;
                    o_tb_endereco_cadastro.cep = TXT_CEP.Text;
                    o_tb_endereco_cadastro.complemento = TXT_COMPLEMENTO.Text;
                    o_tb_endereco_cadastro.id_pais = Convert.ToInt32(DDL_ID_PAIS.SelectedValue);
                    o_tb_endereco_cadastro.id_cidade = Convert.ToInt32(DDL_ID_CIDADE.SelectedValue);
                    o_tb_endereco_cadastro.Tb_cidade.cidade = b_tb_cidade.SelecionarObjetoPorId(o_tb_endereco_cadastro.id_cidade).cidade.ToString();
                    o_tb_endereco_cadastro.id_uf = Convert.ToInt32(DDL_ID_UF.SelectedValue);
                    o_tb_endereco_cadastro.Tb_uf.uf = b_tb_uf.SelecionarObjetoPorId(o_tb_endereco_cadastro.id_uf).uf.ToString();
                    o_tb_endereco_cadastro.telefone = TXT_TELEFONE.Text;
                    o_tb_endereco_cadastro.celular = TXT_CELULAR.Text;
                    o_tb_endereco_cadastro.fax = TXT_FAX.Text;
                    o_tb_endereco_cadastro.id_endereco_tipo = Convert.ToInt32(DDL_ID_ENDERECO_TIPO.SelectedValue);
                    o_tb_endereco_cadastro.Tb_tipo_endereco.desc_tipo_endereco = b_tb_tipo_endereco.SelecionarObjetoPorId(o_tb_endereco_cadastro.id_endereco_tipo).desc_tipo_endereco.ToString();
                    o_tb_endereco_cadastro.sit_principal = Convert.ToBoolean(CHK_SIT_PRINCIPAL.Checked);

                    b_tb_endereco_cadastro.PreencheDataTable(b_tb_endereco_cadastro.Dt_endereco_cadastro, o_tb_endereco_cadastro);

                    GRV_ENDERECO_CADASTRO.DataSource = b_tb_endereco_cadastro.Dt_endereco_cadastro;
                    GRV_ENDERECO_CADASTRO.DataBind();

                    LimpaCamposEnderecoCadastro();
                }
            }
            catch (Exception ex)
            {
                b_tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar incluir o endereço");
            }
           
           
        }

        protected void BTB_INCLUIR_CADASTRO_EMAIL_Click(object sender, EventArgs e)
        {
            try
            {
                if (TXT_EMAIL_1.Text != string.Empty && DDL_TIPO_CADASTRO_EMAIL.SelectedValue != string.Empty)
                {                    
                    o_tb_cadastro_email.email = TXT_EMAIL_1.Text;
                    o_tb_cadastro_email.id_cadastro = 0;
                    o_tb_cadastro_email.id_tipo_email = Convert.ToInt32(DDL_TIPO_CADASTRO_EMAIL.SelectedValue);
                    o_tb_cadastro_email.Tb_tipo_cadasto_email.desc_tipo_cadastro_email = b_tb_tipo_cadastro_email.SelecionarObjetoPorId(o_tb_cadastro_email.id_tipo_email).desc_tipo_cadastro_email.ToString();
                    b_tb_cadastro_email.PreencheDataTable(b_tb_cadastro_email.Dt_cadastro_email, o_tb_cadastro_email);
                    GRV_CADASTRO_EMAIL.DataSource = b_tb_cadastro_email.Dt_cadastro_email;
                    GRV_CADASTRO_EMAIL.DataBind();

                }
            }
            catch (Exception ex)
            {
                b_tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar incluir o email");
            }
           

        }

        protected void IMG_BTN_EXCLUIR_CADASTRO_EMAIL_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                ImageButton btn = (ImageButton)sender;

                int index = Convert.ToInt32(btn.CommandArgument);

                DataTable dt = b_tb_endereco_cadastro.Dt_endereco_cadastro;

                dt.Rows.RemoveAt(index);
                dt.AcceptChanges();

                b_tb_endereco_cadastro.Dt_endereco_cadastro = dt;
                GRV_CADASTRO_EMAIL.DataSource = b_tb_endereco_cadastro.Dt_endereco_cadastro;
                GRV_CADASTRO_EMAIL.DataBind();


            }
            catch (Exception ex)
            {
                b_tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar excluir o email");
            }
        }

        protected void IMG_BTN_EXCLUIR_ENDERECO_CADASTRO_Click(object sender, ImageClickEventArgs e)
        {
            try
            {

                ImageButton btn = (ImageButton)sender;

                int index = Convert.ToInt32(btn.CommandArgument);

                DataTable dt = b_tb_endereco_cadastro.Dt_endereco_cadastro;

                dt.Rows.RemoveAt(index);
                dt.AcceptChanges();

                b_tb_endereco_cadastro.Dt_endereco_cadastro = dt;

                GRV_ENDERECO_CADASTRO.DataSource = b_tb_endereco_cadastro.Dt_endereco_cadastro;
                GRV_ENDERECO_CADASTRO.DataBind();

            }
            catch (Exception ex)
            {
                b_tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar excluir o endereço");
            }
        }

        protected void DDL_ID_UF_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DDL_ID_UF.SelectedValue != string.Empty)
            {
                b_tb_cidade.PreencheControle(DDL_ID_CIDADE, string.Format("id_uf = {0}", DDL_ID_UF.SelectedValue), true);
            }
            
        }


        protected void DDL_PESSOA_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (DDL_PESSOA.SelectedValue == "J")
            {
                PNL_PESSOA_JURIDICA.Visible = true;
                PNL_PESSOA_FISICA.Visible = false;
            }
            else
            {
                PNL_PESSOA_JURIDICA.Visible = false;
                PNL_PESSOA_FISICA.Visible = true;
            }
        }

        protected void BTN_INCLUIR_CONTATO_Click(object sender, EventArgs e)
        {

            try
            {

           

                o_tb_contato.id_cargo = Convert.ToInt32(DDL_ID_CARGO_CONTATO.SelectedValue);
                o_tb_contato.id_cadastro = 0;           
                o_tb_contato.id_tipo_contato = Convert.ToInt32(DDL_ID_TIPO_CONTATO.SelectedValue);
                o_tb_contato.desc_contato = TXT_DESC_CONTATO.Text.Trim();
                o_tb_contato.nome_contato = TXT_NOME_CONTATO.Text.Trim();
                o_tb_contato.sit_ativo = Convert.ToBoolean(CHK_SIT_ATIVO.Checked);

                b_tb_contato.PreencheDataTable(b_tb_contato.Dt_contato, o_tb_contato);
                GRV_TB_CONTATO.DataSource = b_tb_contato.Dt_contato;              
                GRV_TB_CONTATO.DataBind();
            }
            catch (Exception)
            {
                
                throw;
            }
         

           
 
        }

        protected void IMG_BTN_EXCLUIR_CONTATO_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                ImageButton btn = (ImageButton)sender;

                int index = Convert.ToInt32(btn.CommandArgument);

                DataTable dt = b_tb_contato.Dt_contato;

                dt.Rows.RemoveAt(index);
                dt.AcceptChanges();

               b_tb_contato.Dt_contato = dt;
              GRV_TB_CONTATO.DataSource = b_tb_contato.Dt_contato;
              GRV_TB_CONTATO.DataBind();


            }
            catch (Exception ex)
            {
                b_tb_log_erro.IncluirLogErro(ex);
                Master.MSG_ALERTA("Erro ao tentar excluir contato");
            }
        }

     
        
    }
}